//
//  GBInterMaster_CommForDeivce.h
//  NetworkTest
//
//  Created by xiaosi on 16/8/4.
//  Copyright © 2016年 xiaosi. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "GBInterMaster_LogicLauncher.h"

static const NSString* NOTIFICATION_RESPONSE_DEVICE_STATUS_13001= @"com.gaobiaoiot.intermaster.response.device.status.13001";

static const NSString* NOTIFICATION_PUSH_DEVICE_STATUS_13001= @"com.gaobiaoiot.intermaster.push.device.status.13001";

static const NSString* NOTIFICATION_RESPONSE_DEVICE_RUN_RECORD_13001= @"com.gaobiaoiot.intermaster.response.device.run.record.13001";

static const NSString* NOTIFICATION_RESPONSE_USER_OPERATE_RECORD_13001= @"com.gaobiaoiot.intermaster.response.user.operate.record.13001";

static const NSString* NOTIFICATION_RESPONSE_DEVICE_PROGRAM_13001= @"com.gaobiaoiot.intermaster.response.device.program.13001";

static const NSString* NOTIFICATION_RESPONSE_SET_POWERSWITCH= @"com.gaobiaoiot.intermaster.response.set.powerswitch";

static const NSString* NOTIFICATION_RESPONSE_SET_WORKMODE= @"com.gaobiaoiot.intermaster.response.set.workmode";

static const NSString* NOTIFICATION_RESPONSE_SET_HEATMODE= @"com.gaobiaoiot.intermaster.response.set.heatmode";

static const NSString* NOTIFICATION_RESPONSE_SET_TEMPE= @"com.gaobiaoiot.intermaster.response.set.tempe";

static const NSString* NOTIFICATION_RESPONSE_SET_PROGRAM= @"com.gaobiaoiot.intermaster.response.set.program";

@interface GBInterMaster_CommForDeivce : NSObject

/*
*获取设备最新状态
*@param msgNumber：消息序号。
*@param deviceAccount：设备16位序列号。
*/
+ (void) requestDeviceStatus:(int)msgNumber withDeviceAccount:(NSString*)deviceAccount;
/*获取设备最新状态 反馈：
 *
 *需要接收结果的界面监听通知：NOTIFICATION_RESPONSE_DEVICE_STATUS_13001
 * 回调方法中参数[notification userInfo] 中 key @“msgNumber” 代表消息序号， key @"responseCode" 代表响应码，响应码具体详细见，当响应码为0x00时，key @"device"为设备数据（类型为：GBInterMaster_Bean_DeviceInfo13001）使用后应及时释放内存
 *
 */

/*
 *设备最新状态推送   只有数据同步标志为true时才会推送状态
 *需要接收状态推送的界面监听通知：NOTIFICATION_PUSH_DEVICE_STATUS_13001
 *回调方法中参数[notification userInfo] 中 key @"device"为设备数据（类型为：GBInterMaster_Bean_DeviceInfo13001）使用后应及时释放内存
 */



/*
 *获取设备运行记录
 *@param msgNumber：消息序号。
 *@param tag：0：下拉重新加载， 1：上拉获取下12条运行记录
 *@param deviceAccount：设备16位序列号。
 */
+ (void) requestDeviceRuns:(int)msgNumber withTag:(int)tag withDeviceAccount:(NSString*)deviceAccount;
/*获取设备运行记录 反馈：
 *
 *需要接收结果的界面监听通知：NOTIFICATION_RESPONSE_DEVICE_RUN_RECORD_13001
 * 回调方法中参数[notification userInfo] 中 key @“msgNumber” 代表消息序号，key @"deviceAccount"代表设备序号，  key @"responseCode" 代表响应码，响应码具体详细见，当响应码为0x00时，@"runRecords"为设备列表数据（类型为：NSMutableArray）获取里面的GBInterMaster_Bean_DeviceInfo13001类型元素。使用后应及时释放内存，key @"tag"代表（0：下拉重新加载， 1：上拉获取下12条运行记录）
 *
 */

/*
 *获取用户操作记录
 *@param msgNumber：消息序号。
 *@param tag：0：下拉重新加载， 1：上拉获取下12条运行记录
 *@param deviceAccount：设备16位序列号。
 *@param userAccount：使用者的用户名
 */
+ (void) requestUserOpes:(int)msgNumber withTag:(int)tag withDeviceAccount:(NSString*)deviceAccount withUserAccount:(NSString*)userAccount ;
/*获取用户操作记录 反馈：
 *
 *需要接收结果的界面监听通知：NOTIFICATION_RESPONSE_USER_OPERATE_RECORD_13001
 * 回调方法中参数[notification userInfo] 中 key @“msgNumber” 代表消息序号，key @"deviceAccount"代表设备序号，  key @"responseCode" 代表响应码，响应码具体详细见，当响应码为0x00时，@"opeRecords"为用户操作列表数据（类型为：NSMutableArray）获取里面的GBInterMaster_Bean_UserOpes13001类型元素。使用后应及时释放内存，key @"tag"代表（0：下拉重新加载， 1：上拉获取下12条运行记录）
 *
 */


/* 
 *获取时段信息 
 *@param msgNumber：消息序号。
 *@param deviceAccount：设备16位序列号。
 */
+ (void) requestShowProgramInfo:(int)msgNumber withDeviceAccount:(NSString*)deviceAccount;
/*获取时段信息 反馈：
 *
 *需要接收结果的界面监听通知：NOTIFICATION_RESPONSE_DEVICE_PROGRAM_13001
 * 回调方法中参数[notification userInfo] 中 key @“msgNumber” 代表消息序号，key @"deviceAccount"代表设备序号，  key @"responseCode" 代表响应码，响应码具体详细见，当响应码为0x00时，@"programs"为用户操作列表数据（类型为：NSMutableArray）获取里面的GBInterMaster_Bean_ProgramInfo类型元素,每个GBInterMaster_Bean_ProgramInfo代表一天的分时段参数，具体以字段week区分。使用后应及时释放内存。
 */


/*
 *设置开关机
 *@param msgNumber：消息序号。
 *@param deviceAccount：设备16位序列号。
 *@param powerSwitch：1:开机 2:关机。
 */
+ (void) requestPowerSwitch:(int)msgNumber withDeviceAccount:(NSString*)deviceAccount withPowerSwitch:(int)powerSwitch;
/*设置开关机 反馈：
 *
 *需要接收结果的界面监听通知：NOTIFICATION_RESPONSE_SET_POWERSWITCH
 * 回调方法中参数[notification userInfo] 中 key @“msgNumber” 代表消息序号，key @"deviceAccount"代表设备序号，  key @"responseCode" 代表响应码，响应码具体详细见，0x00成功。
 */


/*
 *设置工作模式
 *@param msgNumber：消息序号。
 *@param deviceAccount：设备16位序列号。
 *@param workMode：3：动 1：手动。
 */
+ (void) requestWorkMode:(int)msgNumber withDeviceAccount:(NSString*)deviceAccount withWorkMode:(int)workMode;
/*设置工作模式 反馈：
 *
 *需要接收结果的界面监听通知：NOTIFICATION_RESPONSE_SET_WORKMODE
 * 回调方法中参数[notification userInfo] 中 key @“msgNumber” 代表消息序号，key @"deviceAccount"代表设备序号，  key @"responseCode" 代表响应码，响应码具体详细见，0x00成功。
 */


/*
 *设置加热模式
 *@param msgNumber：消息序号。
 *@param deviceAccount：设备16位序列号。
 *@param heatMode：1：速热 2：舒适 3其他：节能。
 */
+ (void) requestHeatMode:(int)msgNumber withDeviceAccount:(NSString*)deviceAccount withHeatMode:(int)heatMode;
/*设置加热模式 反馈：
 *
 *需要接收结果的界面监听通知：NOTIFICATION_RESPONSE_SET_HEATMODE
 * 回调方法中参数[notification userInfo] 中 key @“msgNumber” 代表消息序号，key @"deviceAccount"代表设备序号，  key @"responseCode" 代表响应码，响应码具体详细见，0x00成功。
 */

/*
 *设置温度
 *@param msgNumber：消息序号。
 *@param deviceAccount：设备16位序列号。
 *@param heatMode：当前加热模式。
 *@tempe tempe：设置温度。
 */
+ (void) requestSetTempe:(int)msgNumber withDeviceAccount:(NSString*)deviceAccount withHeatMode:(int)heatMode withTempe:(int)tempe;
/*设置温度 反馈：
 *
 *需要接收结果的界面监听通知：NOTIFICATION_RESPONSE_SET_TEMPE
 * 回调方法中参数[notification userInfo] 中 key @“msgNumber” 代表消息序号，key @"deviceAccount"代表设备序号，  key @"responseCode" 代表响应码，响应码具体详细见，0x00成功。
 */




/*
 *设置时段
 *@param msgNumber：消息序号。
 *@param deviceAccount：设备16位序列号。
 *@param program：时段，其中 weekDay代表星期，A0：星期一 A1：星期二 。。。A7：星期日。
 */
+ (void) requestSetProgram:(int)msgNumber withDeviceAccount:(NSString*)deviceAccount withProgram:(GBInterMaster_Bean_ProgramInfo*)program;
/*设置时段 反馈：
 *
 *需要接收结果的界面监听通知：NOTIFICATION_RESPONSE_SET_PROGRAM
 * 回调方法中参数[notification userInfo] 中 key @“msgNumber” 代表消息序号，key @"deviceAccount"代表设备序号，  key @"responseCode" 代表响应码，响应码具体详细见，0x00成功。
 */
@end
